/**
 * @Author       : Hejh(3010733382@qq.com)
 * @Version      : V1.0
 * @Date         : 2024-01-25 16:55:40
 * @Description  :存储源相关的工具方法
 */
const fs = require('fs')
const OSS = require('ali-oss')

/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 连接到本地挂载的存储
 * @param {*} targetDir
 */
module.exports.linkToLocal = async (targetDir) => {
  try {
    // 检查目录是否存在
    await fs.promises.access(targetDir, fs.constants.F_OK)

    // 检查目录是否可读
    await fs.promises.access(targetDir, fs.constants.R_OK)

    // 检查目录是否可写
    await fs.promises.access(targetDir, fs.constants.W_OK)

    console.log('目录存在并具有读写权限')
    return true
  } catch (err) {
    console.error('目录不存在或权限不足')
    return false
  }
}

/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 尝试连接到阿里云oss
 * @param {*} config
 */
module.exports.linkToOss = async (
  region,
  accessKeyId,
  accessKeySecret,
  bucket
) => {
  const client = new OSS({
    region,
    accessKeyId,
    accessKeySecret,
    bucket
  })
  try {
    // 获取存储空间列表
    const result = await client.listBuckets()
    console.log('连接成功，存储空间列表：', result.buckets)
    return true
  } catch (err) {
    console.error('连接失败：', err)
    return false
  }
}
